1. Field of the Invention
The present invention is in the field of solid-state data storage and pertains particularly to methods and apparatus for maintaining exclusive writes to non-volatile memory by offloading least frequently written data to lower order non-volatile storage mediums.
2. Discussion of the State of the Art
In the field of data storage, non-volatile mechanical disk drives have been developed for short and long-term data storage. Solid-state non-volatile memory has been implemented for specific data storage needs, especially in small portable electronic computing devices such as cellular telephones, video cameras and the like. Volatile memory is a solid state memory typically used as a high-speed temporary memory such as random access memory (RAM) of which there are many known variations. Common versions of RAM include Dynamic Random Access Memory (DRAM) and Static Random Access Memory (SRAM) among other variations such as SDRAM.
Flash memory, on the other hand, is a solid state high-speed data storage medium that has, until recently, been reserved mainly for handheld devices like cell phones, personal digital assistants (PDAs), cameras, or Universal Serial Bus (USB) peripheral storage devices referred to as jump drives or thumb drives. Flash memory provides a non-volatile memory for storing data with read speeds approaching that of RAM. Common Flash memory types include various types of NOR and NAND Flash, each with distinct physical properties, densities and price points. For example, types of NAND flash may include Single-Level Cell (SLC) and Multi-Level Cell (MLC).
When referring to these memory types, the terms volatile and non-volatile are blurring as new research in memory continues and new memory types are developed. But for purpose of discussion, volatile memory shall refer to memory in which stored data is lost upon interruption of power and non-volatile memory shall refer to memory in which no power is required to retain the data stored. Increasingly, Flash memory is being used as primary or secondary storage memory in computing systems. Such devices are commonly known as solid state disks. Combinations of RAM and Flash are also being used as cache memory in some systems.
U.S. Pat. No. 7,464,240, issued to the inventor of the present application, includes a first portion of solid state memory of a volatile nature, a second portion of solid state memory of a non-volatile nature, a third portion of memory of a non-volatile nature, a controller for managing the memories, and a power subsystem for protecting data in volatile memory in the event of loss of power. The system is, in one embodiment, a transparent cache that is in-line with existing storage traffic. In another embodiment the system is recognized by a host system upon boot as a destination drive for reads and writes.
A controller is provided on the disk drive for managing the memory portions as a single non-volatile memory through use of at least one integrated circuit supporting one or more sets of machine-readable instructions and a data port and buffer circuitry for bi-directional communication of data between the controller and a host system such as a computer.
The system known to the inventor uses a RAM/Flash data storage addressing method that prevents continued and repetitive writing to Flash to preserve mean time before failure (MTBF) of the Flash storage device or devices of the system. The system uses RAM as a caching memory and only writes to Flash when absolutely necessary.
Another optimization of the system described above is rotation of Flash blocks in and out of service to further enhance wear leveling of the Flash device or aggregate of devices onboard or connected to the system. Writing to flash memory is comparatively slower than writing to RAM, hence the use of RAM in the above-described system to cache data for eventual write to Flash memory on power down, power interruption, or only when the RAM or primary Flash cache is full. The system described above provides a practical and economical solution for replacing mechanical hard disk drives in computers and other devices.
It has occurred to the inventor that there is a need for faster data management speeds in the computing industry in general and in particular in the area of robust servers and other business machines. While CPU speeds are at all time highs in terms of computing cycles, speeds at which data can be managed relative to disk storage on a Flash memory are still lagging behind. This has caused a barrier to the use of Flash extensively in more robust data storage systems.
Still another disadvantage of using flash as permanent storage in robust systems is that a number of writes performed on the memory is limited on a Flash memory chip, and the media must be written in a manner, often proprietary, as specified by the manufacturer of the Flash memory. Such adaptations may not be readily supported by a particular host system sending the data for storage. This fact has been a basis for differing approaches to flash management software and firmware that deal essentially with how data may be rendered and stored on the particular type Flash memory implemented.
Therefore, what is needed in the art is a combination volatile and non-volatile solid-state data storage system having hierarchically ordered storage mediums. A system such as this would solve the problem of over utilization of RAM to store data.